<%--
  Created by IntelliJ IDEA.
  User: teacher
  Date: 2022/4/22
  Time: 16:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>关键字搜索</title>
    <style>
        li{
            list-style: none;
        }
        #d{
            border:1px solid #697ddd;
            width: 300px;
            border-top-width: 0px;
            padding: 10px;
            mex-height: 200px;
            overflow: auto;
            display: none;
        }
    </style>
    <script>
        function query(){
            let spell = document.getElementById("spell").value;
            let d = document.getElementById("d");
            let xhr = new XMLHttpRequest();

            // 清除上一个查询的结果
            d.innerHTML = "";

            // 如果用户没有输入任何数据,则不需要进行查询
            if(spell == ""){
                d.style.display = "none";
                return;
            }

            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4 && xhr.status == 200){
                    let result = xhr.responseText;
                    let datas = eval("("+result+")");
                    // 当后台没有查询到数据的时候,隐藏div
                    if(datas.length == 0){
                        d.style.display = "none";
                        return;
                    }
                    d.style.display = "block";
                    for(let i = 0; i < datas.length; i++){
                        d.innerHTML = d.innerHTML + "<li>"+datas[i].message+"</li>";
                    }

                }
            };
            xhr.open("get","${pageContext.request.contextPath}/query?spell="+spell,true);
            xhr.send(null);
        }
    </script>
</head>
<body>
<!--
    用户在输入框输入数据的时候
    当键盘上按键松开时触发事件
    根据用户在输入框中输入的内容去数据库中查询t_data表
    使用模糊查询,与表中spell与message进行模糊查询
    用户输入的字符只要满足spell或者message中的任意一个即可
    在输入框下显示的是message的内容
-->
<input id="spell" type="text" style="width: 322px" onkeyup="query()">
<div id="d">
</div>
</body>
</html>
